﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using System.Data;
using System.Data.SqlClient;

using Padelcenter.Common;

namespace Padelcenter.DataAccess
{
    #region " Idioma Select " 
    public class Idioma_Select : DataAccessBase
    {
        public Idioma_Select() 
        {
            this.StoredProcedureName = StoredProcedure.Name.Idioma_SELECT.ToString();
        }
        
        public DataSet Get()
        {
            DataSet ds;

            Idioma_Select_Prm idioma_Select_Prm = new Idioma_Select_Prm(this.Idioma);
            DataBaseHelper dbhelper = new DataBaseHelper(StoredProcedureName);
            ds = dbhelper.Run(base.ConnectionString, idioma_Select_Prm.Parameters);

            return ds;
        }
        
        private Idioma _idioma;

        public Idioma Idioma
        {
            get { return _idioma; }
            set { _idioma = value; }
        }
    }
    public class Idioma_Select_Prm
    {
        public Idioma_Select_Prm(Idioma idioma)
        {
            this.Idioma = idioma;
            this.BuildParams();
        }

        private void BuildParams()
        {
            SqlParameter[] parameters = 
            {
                new SqlParameter( "@idIdioma"           , this.Idioma.IdIdioma),
                new SqlParameter( "@ConFiltroActivo"    , this.Idioma.ConFiltroActivo),
                new SqlParameter( "@Activo"             , this.Idioma.Activo)
            };

            this.Parameters = parameters;
        }

        private SqlParameter[] _parameters;
        private Idioma _idioma;

        public Idioma Idioma
        {
            get { return _idioma; }
            set { _idioma = value; }
        }
        public SqlParameter[] Parameters
        {
            get { return _parameters; }
            set { _parameters = value; }
        }
    }
    #endregion

    #region " Idioma Insert "
    public class Idioma_Insert : DataAccessBase
    {
        public Idioma_Insert()
        {
            this.StoredProcedureName = StoredProcedure.Name.Idioma_INSERT.ToString();
        }

        public DataSet Get()
        {
            DataSet ds;

            Idioma_Insert_Prm idioma_Insert_Prm = new Idioma_Insert_Prm(this.Idioma);
            DataBaseHelper dbhelper = new DataBaseHelper(StoredProcedureName);
            ds = dbhelper.Run(base.ConnectionString, idioma_Insert_Prm.Parameters);

            return ds;
        }

        private Idioma _idioma;

        public Idioma Idioma
        {
            get { return _idioma; }
            set { _idioma = value; }
        }
    }
    public class Idioma_Insert_Prm
    {
        public Idioma_Insert_Prm(Idioma idioma)
        {
            this.Idioma = idioma;
            this.BuildParams();
        }

        private void BuildParams()
        {
            SqlParameter[] parameters = 
            {
                new SqlParameter("@Descripcion" , this.Idioma.Descripcion),
                new SqlParameter("@Activo"      , this.Idioma.Activo)
            };

            this.Parameters = parameters;
        }

        private SqlParameter[] _parameters;
        private Idioma _idioma;

        public Idioma Idioma
        {
            get { return _idioma; }
            set { _idioma = value; }
        }
        public SqlParameter[] Parameters
        {
            get { return _parameters; }
            set { _parameters = value; }
        }
    }
    #endregion

    #region " Idioma Update "
    public class Idioma_Update : DataAccessBase
    {
        public Idioma_Update()
        {
            this.StoredProcedureName = StoredProcedure.Name.Idioma_UPDATE.ToString();
        }

        public DataSet Get()
        {
            DataSet ds;

            Idioma_Update_Prm idioma_Update_Prm = new Idioma_Update_Prm(this.Idioma);
            DataBaseHelper dbhelper = new DataBaseHelper(StoredProcedureName);
            ds = dbhelper.Run(base.ConnectionString, idioma_Update_Prm.Parameters);

            return ds;
        }

        private Idioma _idioma;

        public Idioma Idioma
        {
            get { return _idioma; }
            set { _idioma = value; }
        }
    }
    public class Idioma_Update_Prm
    {
        public Idioma_Update_Prm(Idioma idioma)
        {
            this.Idioma = idioma;
            this.BuildParams();
        }

        private void BuildParams()
        {
            SqlParameter[] parameters = 
            {
                new SqlParameter("@idIdioma"    , this.Idioma.IdIdioma),
                new SqlParameter("@Descripcion" , this.Idioma.Descripcion),
                new SqlParameter("@Activo"      , this.Idioma.Activo)
            };

            this.Parameters = parameters;
        }

        private SqlParameter[] _parameters;
        private Idioma _idioma;

        public Idioma Idioma
        {
            get { return _idioma; }
            set { _idioma = value; }
        }
        public SqlParameter[] Parameters
        {
            get { return _parameters; }
            set { _parameters = value; }
        }
    }
    #endregion
}
